11063. Урок математики
Сегодня Крош узнал про среднее
геометрическое чисел. Среднее геометрическое двух положительных чисел x и
y равно . Обозначим среднее геометрическое чисел x и y как g(x,
y).
У Кроша было три положительных
вещественных числа a, b и c. Он использовал их, чтобы
попрактиковаться в вычислении средних геометрических. Он вычислил и записал
числа g(a, b), g(a, c) и g(b, c).
Спустя некоторое время, Крош
увидел записанные значения средних геометрических. И теперь он хочет вспомнить,
какие числа a, b и c у него были.
Помогите ему найти любые подходящие положительные числа a, b и c.
Вход. В первой строке дано значение
среднего геометрического чисел a и b, иными словами – g(a,
b). Во второй строке дано число g(a, c). В третьей
строке дано число g(b, c).
Все три числа являются
вещественными, положительными, не превышают 109 и содержат не
более 6 цифр после запятой.
Выход. Выведите любые подходящие
положительные числа a, b и c. Жюри вычислит средние
геометрические выведенных вами чисел. Ответ будет считаться правильным, если
абсолютная или относительная погрешность каждого из средних не будет
превышать 10-6.
Можно доказать, что при любых
входных данных, удовлетворяющих ограничениям, решение существует.
Пример
входа 1 |
Пример
выхода 1 |
12 20 15 |
16.000000000000000 9.000000000000000 25.000000000000000 |
|
|
Пример
входа 2 |
Пример
выхода 2 |
1.234567 2.345678 3.456789 |
0.837741803571465 1.819362088642601 6.567901060000794 |
математика
Пусть x = g(a, b) = , y = g(a, c) = и z
= g(b, c) = .
Перемножив эти три значения, получим: xyz
= abc. Отсюда
, ,
Эту тройку чисел (a, b, c) и выводим.
Пример
В первом примере x
= 12, y = 20, z = 15. Вычисляем
исходную тройку чисел:
, ,
Реализация алгоритма
Читаем входные данные.
scanf("%lf %lf %lf", &x, &y, &z);
Вычисляем результирующие a, b и c.
a = x * y / z;
b = x * z / y;
c = y * z / x;
Выводим ответ.
printf("%lf\n%lf\n%lf\n", a, b, c);